(princ ": ")
(let* ((def (symbol-function function))
(beg (if (commandp def) "an interactive " "a ")))
- (princ (cond ((stringp def) "a keyboard macro.")
+ (princ (cond ((or (stringp def)
+ (vectorp def))
+ "a keyboard macro.")
((subrp def)
(concat beg "built-in function."))
((byte-code-function-p def)
))
(t "")))
(terpri)
+ (let ((arglist (cond ((byte-code-function-p def)
+ (car (append def nil)))
+ ((eq (car-safe def) 'lambda)
+ (nth 1 def))
+ (t t))))
+ (if (listp arglist)
+ (progn
+ (princ (cons function
+ (mapcar (lambda (arg)
+ (if (memq arg '(&optional &rest))
+ arg
+ (intern (upcase (symbol-name arg)))))
+ arglist)))
+ (terpri))))
(if (documentation function)
(progn (terpri)
(princ (documentation function)))
(princ "not documented"))
- (cond ((byte-code-function-p def)
- (save-excursion
- (set-buffer standard-output)
- (or (eq (char-after (1- (point-max))) ?\n)
- (terpri)))
- (terpri)
- (princ (car (append def nil))))
- ((eq (car-safe def) 'lambda)
- (save-excursion
- (set-buffer standard-output)
- (or (eq (char-after (1- (point-max))) ?\n)
- (terpri)))
- (terpri)
- (princ (nth 1 def)))))
+ )
(print-help-return-message)
;; Return the text we displayed.
(save-excursion (set-buffer standard-output) (buffer-string))))